perm filename EFNS.LAP[206,LSP] blob sn#143981 filedate 1975-02-02 generic text, type T, neo UTF8
(DEFPROP EFNS (NIL ADDNAMES CE CF COPYF DELNAMES DESTROY DLEXINSERT DLEXINSERT1 DROP MERGE PAIRMERGE RENAMEF SAV→
E SETNL SORT SORT1) VALUE) 

(LAP ADDNAMES FSUBR) 
       (PUSH P 1) 
       (PUSH P 0 P) 
 TAG1  (MOVE 1 0 P) 
       (JUMPE 1 TAG11) 
       (HLRZ@ 1 0 P) 
       (MOVE 2 (SPECIAL NAMES) S) 
       (CALL 2 (E DLEXINSERT) S) 
       (MOVEM 1 (SPECIAL NAMES) S) 
       (HRRZ@ 1 0 P) 
       (MOVEM 1 0 P) 
       (JRST 0 TAG1) 
 TAG11 (MOVE 2 (SPECIAL NAMES) S) 
       (MOVE 1 (SPECIAL NAMELIST) S) 
       (CALL 2 (E SET) S) 
       (SUB P (C 1 0 1 0)) 
       (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP CE FSUBR) 
       (PUSH P 1) 
       (MOVE 2 (SPECIAL NAMES) S) 
       (HLRZ@ 1 0 P) 
       (CALL 2 (E MEMQ) S) 
       (JUMPE 1 TAG5) 
 TAG5  (MOVE 2 (SPECIAL NAMES) S) 
       (HLRZ@ 1 0 P) 
       (PUSH P (SPECIAL NAMELIST) S) 
       (CALL 2 (E DLEXINSERT) S) 
       (MOVEM 1 (SPECIAL NAMES) S) 
       (MOVE 2 1) 
       (POP P 1) 
       (CALL 2 (E SET) S) 
       (MOVEI 1 (QUOTE NIL)) 
       (CALL 1 (E NCONS) S) 
       (HRRZ@ 2 0 P) 
       (CALL 2 (E XCONS) S) 
       (MOVEI 2 (QUOTE LAMBDA) S) 
       (CALL 2 (E XCONS) S) 
       (MOVEI 3 (QUOTE EXPR) S) 
       (MOVE 2 1) 
       (HLRZ@ 1 0 P) 
       (CALL 3 (E PUTPROP) S) 
       (HLRZ@ 1 0 P) 
       (CALL 1 (E NCONS) S) 
       (SUB P (C 1 0 1 0)) 
       (JCALL 17 (E EDITF) S) 
       NIL 

(LAP CF FSUBR) 
       (PUSH P 1) 
       (MOVE 2 (SPECIAL NAMES) S) 
       (HLRZ@ 1 0 P) 
       (CALL 2 (E MEMQ) S) 
       (JUMPE 1 TAG5) 
 TAG5  (MOVE 2 (SPECIAL NAMES) S) 
       (HLRZ@ 1 0 P) 
       (PUSH P (SPECIAL NAMELIST) S) 
       (CALL 2 (E DLEXINSERT) S) 
       (MOVEM 1 (SPECIAL NAMES) S) 
       (MOVE 2 1) 
       (POP P 1) 
       (CALL 2 (E SET) S) 
       (MOVEI 1 (QUOTE NIL)) 
       (CALL 1 (E NCONS) S) 
       (HRRZ@ 2 0 P) 
       (CALL 2 (E XCONS) S) 
       (MOVEI 2 (QUOTE LAMBDA) S) 
       (CALL 2 (E XCONS) S) 
       (MOVEI 3 (QUOTE FEXPR) S) 
       (MOVE 2 1) 
       (HLRZ@ 1 0 P) 
       (CALL 3 (E PUTPROP) S) 
       (HLRZ@ 1 0 P) 
       (CALL 1 (E NCONS) S) 
       (SUB P (C 1 0 1 0)) 
       (JCALL 17 (E EDITF) S) 
       NIL 

(LAP COPYF FSUBR) 
       (PUSH P 1) 
       (MOVEI 2 (QUOTE (EXPR FEXPR LEXPR MACRO)) S) 
       (HLRZ@ 1 1) 
       (CALL 2 (E GETL) S) 
       (PUSH P 1) 
       (JUMPE 1 TAG5) 
       (MOVE 2 (SPECIAL NAMES) S) 
       (HRRZ@ 1 -1 P) 
       (HLRZ@ 1 1) 
       (CALL 2 (E MEMQ) S) 
       (JUMPE 1 TAG7) 
       (MOVEI 1 (QUOTE "NEW NAME CONFLICTS WITH EXISTING NAME") S) 
       (JRST 0 TAG1) 
 TAG7  (MOVE 2 (SPECIAL NAMES) S) 
       (HRRZ@ 1 -1 P) 
       (HLRZ@ 1 1) 
       (PUSH P (SPECIAL NAMELIST) S) 
       (CALL 2 (E DLEXINSERT) S) 
       (MOVEM 1 (SPECIAL NAMES) S) 
       (MOVE 2 1) 
       (POP P 1) 
       (CALL 2 (E SET) S) 
       (HRRZ@ 1 -1 P) 
       (HLRZ@ 1 1) 
       (PUSH P 1) 
       (HLRZ@ 1 -1 P) 
       (PUSH P 1) 
       (HRRZ@ 1 -2 P) 
       (HLRZ@ 1 1) 
       (CALL 1 (E COPY) S) 
       (HLRZ@ 3 -2 P) 
       (MOVE 2 1) 
       (EXCH 1 -1 P) 
       (CALL 3 (E PUTPROP) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (SUB P (C 1 0 1 0)) 
       (JRST 0 TAG1) 
 TAG5  (MOVE 1 0 P) 
 TAG1  (SUB P (C 2 0 2 0)) 
       (POPJ P) 
       NIL 

(LAP DELNAMES FSUBR) 
       (PUSH P 1) 
       (PUSH P 0 P) 
 TAG1  (MOVE 1 0 P) 
       (JUMPE 1 TAG11) 
       (HLRZ@ 1 0 P) 
       (MOVE 2 (SPECIAL NAMES) S) 
       (CALL 2 (E DREMOVE) S) 
       (MOVEM 1 (SPECIAL NAMES) S) 
       (HRRZ@ 1 0 P) 
       (MOVEM 1 0 P) 
       (JRST 0 TAG1) 
 TAG11 (MOVE 2 (SPECIAL NAMES) S) 
       (MOVE 1 (SPECIAL NAMELIST) S) 
       (CALL 2 (E SET) S) 
       (SUB P (C 1 0 1 0)) 
       (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP DESTROY FSUBR) 
       (PUSH P 1) 
       (PUSH P 0 P) 
 TAG1  (MOVE 1 0 P) 
       (JUMPE 1 TAG12) 
       (HLRZ@ 1 0 P) 
       (MOVEI 2 (QUOTE (EXPR FEXPR LEXPR MACRO)) S) 
       (PUSH P 1) 
       (CALL 2 (E GETL) S) 
       (HLRZ@ 2 1) 
       (POP P 1) 
       (CALL 2 (E REMPROP) S) 
       (HRRZ@ 1 0 P) 
       (MOVEM 1 0 P) 
       (JRST 0 TAG1) 
 TAG12 (PUSH P -1 P) 
 TAG2  (MOVE 1 0 P) 
       (JUMPE 1 TAG21) 
       (HLRZ@ 1 0 P) 
       (MOVE 2 (SPECIAL NAMES) S) 
       (CALL 2 (E DREMOVE) S) 
       (MOVEM 1 (SPECIAL NAMES) S) 
       (HRRZ@ 1 0 P) 
       (MOVEM 1 0 P) 
       (JRST 0 TAG2) 
 TAG21 (MOVE 2 (SPECIAL NAMES) S) 
       (MOVE 1 (SPECIAL NAMELIST) S) 
       (CALL 2 (E SET) S) 
       (SUB P (C 2 0 2 0)) 
       (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP DLEXINSERT SUBR) 
       (PUSH P 1) 
       (PUSH P 2) 
       (JUMPN 2 TAG2) 
       (CALL 1 (E NCONS) S) 
       (JRST 0 TAG1) 
 TAG2  (MOVE 2 0 P) 
       (MOVE 1 -1 P) 
       (CALL 2 (E DLEXINSERT1) S) 
       (MOVE 1 0 P) 
 TAG1  (SUB P (C 2 0 2 0)) 
       (POPJ P) 
       NIL 

(LAP DLEXINSERT1 SUBR) 
       (PUSH P 1) 
       (PUSH P 2) 
       (HLRZ@ 2 2) 
       (CALL 2 (E LEXORDER) S) 
       (JUMPE 1 TAG2) 
       (HRRZ@ 2 0 P) 
       (HLRZ@ 1 0 P) 
       (CALL 2 (E CONS) S) 
       (HRRM@ 1 0 P) 
       (MOVE 1 -1 P) 
       (HRLM@ 1 0 P) 
       (MOVE 1 0 P) 
       (JRST 0 TAG1) 
 TAG2  (HRRZ@ 1 0 P) 
       (JUMPN 1 TAG3) 
       (MOVE 1 -1 P) 
       (CALL 1 (E NCONS) S) 
       (HRRM@ 1 0 P) 
       (MOVE 1 0 P) 
       (JRST 0 TAG1) 
 TAG3  (HRRZ@ 2 0 P) 
       (MOVE 1 -1 P) 
       (CALL 2 (E DLEXINSERT1) S) 
 TAG1  (SUB P (C 2 0 2 0)) 
       (POPJ P) 
       NIL 

(LAP DROP SUBR) 
       (PUSH P 1) 
       (PUSH P (C 0 0 TAG1 0)) 
       (MOVEI D (QUOTE LIST) S) 
       (PUSH P D) 
       (PUSH P 1) 
       (MOVNI 6 2) 
       (JCALL 16 (E MAPCAR) S) 
 TAG1  (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP MERGE SUBR) 
       (PUSH P 1) 
       (PUSH P 2) 
       (JUMPN 1 TAG2) 
       (MOVE 1 2) 
       (JRST 0 TAG1) 
 TAG2  (JUMPN 2 TAG4) 
       (JRST 0 TAG1) 
 TAG4  (HLRZ@ 2 2) 
       (HLRZ@ 1 1) 
       (CALL 2 (E LEXORDER) S) 
       (JUMPE 1 TAG6) 
       (HLRZ@ 1 -1 P) 
       (MOVE 2 0 P) 
       (PUSH P 1) 
       (HRRZ@ 1 -2 P) 
       (CALL 2 (E MERGE) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
       (JRST 0 TAG1) 
 TAG6  (HLRZ@ 1 0 P) 
       (HRRZ@ 2 0 P) 
       (PUSH P 1) 
       (MOVE 1 -2 P) 
       (CALL 2 (E MERGE) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
 TAG1  (SUB P (C 2 0 2 0)) 
       (POPJ P) 
       NIL 

(LAP PAIRMERGE SUBR) 
       (PUSH P 1) 
       (JUMPE 1 TAG1) 
       (HRRZ@ 1 1) 
       (JUMPN 1 TAG2) 
       (MOVE 1 0 P) 
       (JRST 0 TAG1)  TAG2  (HRRZ@ 2 0 P) 
       (HLRZ@ 2 2) 
       (HLRZ@ 1 0 P) 
       (CALL 2 (E MERGE) S) 
       (PUSH P 1) 
       (HRRZ@ 1 -1 P) 
       (HRRZ@ 1 1) 
       (CALL 1 (E PAIRMERGE) S) 
       (POP P 2) 
       (CALL 2 (E XCONS) S) 
 TAG1  (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP RENAMEF FSUBR) 
       (PUSH P 1) 
       (MOVE 2 (SPECIAL NAMES) S) 
       (CALL 1 (E CADR) S) 
       (CALL 2 (E MEMQ) S) 
       (JUMPE 1 TAG2) 
       (MOVEI 1 (QUOTE "NEW NAME CONFLICTS WITH EXISTING NAME") S) 
       (JRST 0 TAG1) 
 TAG2  (MOVE 2 (SPECIAL NAMES) S) 
       (HLRZ@ 1 0 P) 
       (CALL 2 (E MEMQ) S) 
       (JUMPN 1 TAG3) 
       (MOVEI 1 (QUOTE "OLD NAME DOES NOT EXIST") S) 
       (JRST 0 TAG1) 
 TAG3  (MOVEI 2 (QUOTE (EXPR FEXPR LEXPR MACRO)) S) 
       (HLRZ@ 1 0 P) 
       (CALL 2 (E GETL) S) 
       (PUSH P 1) 
       (JUMPE 1 TAG13) 
       (HLRZ@ 2 1) 
       (HLRZ@ 1 -1 P) 
       (CALL 2 (E GET) S) 
       (MOVE 3 2) 
       (EXCH 2 1) 
       (HRRZ@ 1 -1 P) 
       (HLRZ@ 1 1) 
       (CALL 3 (E PUTPROP) S) 
       (HLRZ@ 2 0 P) 
       (HLRZ@ 1 -1 P) 
       (CALL 2 (E REMPROP) S) 
       (MOVE 2 (SPECIAL NAMES) S) 
       (HLRZ@ 1 -1 P) 
       (CALL 2 (E DREMOVE) S) 
       (MOVE 2 (SPECIAL NAMES) S) 
       (HRRZ@ 1 -1 P) 
       (HLRZ@ 1 1) 
       (PUSH P (SPECIAL NAMELIST) S) 
       (CALL 2 (E DLEXINSERT) S) 
       (MOVEM 1 (SPECIAL NAMES) S) 
       (MOVE 2 1) 
       (POP P 1) 
       (CALL 2 (E SET) S) 
       (MOVE 2 -1 P) 
       (MOVEI 1 (QUOTE R) S) 
       (CALL 2 (E CONS) S) 
       (CALL 1 (E NCONS) S) 
       (MOVE 2 (SPECIAL NAMELIST) S) 
       (CALL 2 (E XCONS) S) 
       (CALL 17 (E EDITFNS) S) 
       (JRST 0 TAG12) 
 TAG13 
 TAG12 (MOVEI 1 (QUOTE NIL)) 
       (SUB P (C 1 0 1 0)) 
 TAG1  (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP SAVE FSUBR) 
       (PUSH P 1) 
       (PUSH P (SPECIAL *NOPOINT) S) 
       (CLEARM 0 (SPECIAL *NOPOINT) S) 
       (MOVEI 1 (QUOTE NIL)) 
       (CALL 17 (E UNBREAK) S) 
       (PUSH P 1) 
       (MOVE 1 (SPECIAL NAMELIST) S) 
       (CALL 1 (E NCONS) S) 
       (HLRZ@ 2 -2 P) 
       (CALL 2 (E XCONS) S) 
       (CALL 17 (E DSKOUT) S) 
       (MOVE 1 -1 P) 
       (MOVEM 1 (SPECIAL *NOPOINT) S) 
       (MOVE 1 0 P) 
       (CALL 17 (E BREAK) S) 
       (MOVEI 1 (QUOTE NIL)) 
       (SUB P (C 3 0 3 0)) 
       (POPJ P) 
       NIL 

(LAP SETNL FSUBR) 
       (PUSH P 1) 
       (JUMPN 1 TAG2) 
       (MOVE 1 (SPECIAL NAMELIST) S) 
       (JRST 0 TAG1) 
 TAG2  (HLRZ@ 1 0 P) 
       (CALL 1 (E *EVAL) S) 
       (MOVEM 1 (SPECIAL NAMES) S) 
       (HLRZ@ 1 0 P) 
       (MOVEM 1 (SPECIAL NAMELIST) S) 
 TAG1  (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP SORT SUBR) 
       (PUSH P 1) 
       (JUMPN 1 TAG2) 
       (MOVE 1 0 P) 
       (JRST 0 TAG1) 
 TAG2  (MOVE 1 0 P) 
       (CALL 1 (E DROP) S) 
       (CALL 1 (E SORT1) S) 
 TAG1  (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL 

(LAP SORT1 SUBR) 
       (PUSH P 1) 
       (HRRZ@ 1 1) 
       (JUMPN 1 TAG2) 
       (HLRZ@ 1 0 P) 
       (JRST 0 TAG1) 
 TAG2  (MOVE 1 0 P) 
       (CALL 1 (E PAIRMERGE) S) 
       (CALL 1 (E SORT1) S) 
 TAG1  (SUB P (C 1 0 1 0)) 
       (POPJ P) 
       NIL